package com.scg33.inicio;

import org.zkoss.bind.annotation.AfterCompose;
import org.zkoss.bind.annotation.Command;
import org.zkoss.bind.annotation.Init;
import org.zkoss.bind.annotation.NotifyChange;

import com.coreweb.extras.email.EnviarCorreo;
import com.scg33.util.RandomStringGenerator;

public class VMContacto extends VMInicio {


	private RandomStringGenerator rsg = new RandomStringGenerator(3);

	String nombre = "";
	String telefono = "";
	String email = "";
	String asunto = "";
	String captcha = rsg.getRandomString();
	String captchaConfirmar = "";
	String comentario = "";
	boolean enviada = false;

	@Init(superclass = true)
	public void initVMComunicaciones() {
	}

	@AfterCompose(superclass = true)
	public void afterComposeVMComunicaciones() {
	}

	@Command
	@NotifyChange("*")
	public void refrescarCapcha() {
		this.captcha = rsg.getRandomString();
	}

	@Command
	@NotifyChange("*")
	public void enviarContacto() {

		String err = "";
		if (this.nombre.trim().length() == 0) {
			err += "\n * Debe ingresar su nombre";
		}

		if (this.m.checkEmail(this.email) == false) {
			err += "\n * El correo electrónico no es correcto";
		}

		if (this.comentario.trim().length() == 0) {
			err += "\n * No ingresó ningún comentario";
		}

		String c1 = this.captcha.trim().toLowerCase();
		String c2 = this.captchaConfirmar.trim().toLowerCase();

		if ((c1.compareTo(c2) != 0) || (c1.length() == 0)) {
			err += "\n * El código de verificación no es correcto";
		}

		if (err.length() > 0) {
			err = "Hay un error al completar el formulario: \n" + err;
			this.m.mensajeError(err);
		} else {
			this.enviada = true;
			try {
				String msg = "";
				msg += "--- Mensaje de la Web ---\n\n";
				msg += "Fecha: "+this.m.dateHoyToString()+"\n";
				msg += "Nombre: "+this.nombre+"\n";
				msg += "email: "+this.email+"\n";
				msg += "telefono: "+this.telefono+"\n";
				msg += "asunto: "+this.asunto+"\n";
				msg += "comentario: "+this.comentario+"\n";
				msg += "---- fin del mensaje ----\n\n";
				msg += "ESTE ES UN MENSAJE AUTOMÁTICO\n\n";
				System.out.println(msg);
				
				if (this.sisPro.siEnviarCorreoFormulario() == true){
					EnviarCorreo ec = new EnviarCorreo();
					ec.sendMessage(this.sisPro.getEmailFormulariosDestino(),
							this.sisPro.getEmailFormulariosDestinoBcc(), "Contacto Web scg33", msg);
				}
				
			} catch (Exception e) {
				e.printStackTrace();
			}
		}

	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getTelefono() {
		return telefono;
	}

	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}

	public String getAsunto() {
		return asunto;
	}

	public void setAsunto(String asunto) {
		this.asunto = asunto;
	}

	public String getCaptcha() {
		return captcha;
	}

	public void setCaptcha(String captcha) {
		this.captcha = captcha;
	}

	public String getCaptchaConfirmar() {
		return captchaConfirmar;
	}

	public void setCaptchaConfirmar(String captchaConfirmar) {
		this.captchaConfirmar = captchaConfirmar;
	}

	public String getComentario() {
		return comentario;
	}

	public void setComentario(String comentario) {
		this.comentario = comentario;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public boolean isEnviada() {
		return enviada;
	}

	public void setEnviada(boolean enviada) {
		this.enviada = enviada;
	}

}
